class SessionController < ApplicationController
  skip_before_filter :require_login


  #Metodo que recibe los parametros devueltos por el API de Google OpenID
  #para validar que el usuario exista cuando intenta hacer login.
  #Si existe, inicia sesion y se le concede acceso a todas las funcionalidades
  #de usuario.

   def administrator_login

    request.query_string.split(/&/).inject({}) do |hash, setting|
      key, val = setting.split(/=/)
      if key == 'openid.mode'
        @cancel = val
      end
      if key == 'openid.ext1.value.email'
        usuario, correo  = val.split(/%40/)
        @email = usuario + '@' + correo
      end
    end

    if @cancel=='cancel'
      redirect_to :controller => 'home', :action => 'index'
    else
      administrator= Administrator.find(:first, :conditions => [" login = ?", @email ])

      if administrator
        flash[:notice] = t('flash.loggedin')
        logger.info '//////EL USUARIO SE HA LOGUEADO EXITOSAMENTE ////// '+Time.now.to_s
        session[:user] = administrator.login
        session[:id]= administrator.id


          redirect_to :controller => 'administrators', :action => 'index'
        
      else
        flash[:error] = @email +t('flash.noregister')
        logger.info '//////FALLO DE AUTENTICACION CON GOOGLE ////// '+Time.now.to_s
        redirect_to :controller => 'home', :action => 'index'
      end
    end

  end

  #Metodo que finaliza la sesion del usuario cuando este hace logout
  def administrator_logout
    #    if session[:user]!=nil
    session[:user] = nil
    session[:id] = nil
    redirect_to :controller => 'home', :action => 'index'
    logger.info '//////EL USUARIO HA FINALIZADO SESSION CORRECTAMENTE ////// '+Time.now.to_s

    #    else
    #    end
  end


end
